home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / interfaces3_5.lha / Interfaces / ClipBoard.mod < prev    next >
Text File  |  1994-03-05  |  2KB  |  71 lines

  1. (*
  2. (*
  3. **  Amiga Oberon Interface Module:
  4. **  $VER: ClipBoard.mod 40.15 (28.12.93) Oberon 3.0
  5. **
  6. **   © 1993 by Fridtjof Siebert
  7. *)
  8. *)
  9.  
  10. MODULE ClipBoard;   (* $Implementation- *)
  11.  
  12. IMPORT e * := Exec;
  13.  
  14. CONST
  15.  
  16.   clipboardName * = "clipboard.device";
  17.  
  18.   post           * = e.nonstd+0;
  19.   currentReadId  * = e.nonstd+1;
  20.   currentWriteId * = e.nonstd+2;
  21.   changeHook     * = e.nonstd+3;
  22.  
  23.   obsoleteId * = 1;
  24.  
  25. TYPE
  26.  
  27.   ClipboardUnitPartialPtr * = UNTRACED POINTER TO ClipboardUnitPartial;
  28.   ClipboardUnitPartial * = STRUCT (node * : e.Node) (* list of units *)
  29.     unitNum * : LONGINT;    (* unit number for this unit *)
  30.     (* the remaining unit data is private to the device *)
  31.   END;
  32.  
  33.  
  34.   IOClipReqPtr * = UNTRACED POINTER TO IOClipReq;
  35.   IOClipReq * = STRUCT (message * : e.Message)
  36.     device * : e.DevicePtr;     (* device node pointer  *)
  37.     unit * : ClipboardUnitPartialPtr; (* unit node pointer *)
  38.     command * : INTEGER;        (* device command *)
  39.     flags * : SHORTSET;         (* including QUICK and SATISFY *)
  40.     error * : SHORTINT;         (* error or warning num *)
  41.     actual * : LONGINT;         (* number of bytes transferred *)
  42.     length * : LONGINT;         (* number of bytes requested *)
  43.     data * : e.APTR;            (* either clip stream or post port *)
  44.     offset * : LONGINT;         (* offset in clip stream *)
  45.     clipID * : LONGINT;         (* ordinal clip identifier *)
  46.   END;
  47.  
  48. CONST
  49.  
  50.   primaryClip * = 0;       (* primary clip unit *)
  51.  
  52. TYPE
  53.  
  54.   SatisfyMsgPtr * = UNTRACED POINTER TO SatisfyMsg;
  55.   SatisfyMsg * = STRUCT (msg * : e.Message) (* the length will be 6 *)
  56.     unit * : INTEGER;       (* which clip unit this is *)
  57.     clipID * : LONGINT;     (* the clip identifier of the post *)
  58.   END;
  59.  
  60.   ClipHookMsgPtr * = UNTRACED POINTER TO ClipHookMsg;
  61.   ClipHookMsg * = STRUCT
  62.     type * : LONGINT;           (* zero for this structure format *)
  63.     changeCmd * : LONGINT;      (* command that caused this hook invocation: *)
  64.                                 (*   either Exec.update or ClipBoard.post *)
  65.     clipID * : LONGINT;         (* the clip identifier of the new data *)
  66.   END;
  67.  
  68. END ClipBoard.
  69.  
  70.  
  71.